Systems and methods for contouring a set of medical images

ABSTRACT

In accordance with the teachings described herein, systems and methods are provided for contouring a set of medical images. An example system may include an image database, an image deformation engine and a contour transformation engine. The image database may be used to store a set of medical images. The image deformation engine may be configured to receive a source image and a target image from the set of medical images in the image database, and further configured to use a deformation algorithm with the source image and the target image to generate deformation field data that is indicative of changes between one or more objects from the source image to the target image. The contour transformation engine may be configured to receive source contour data that identifies the one or more objects within the source image, and further configured to use the deformation field data and the source contour data to generate automatic target contour data that identifies the one or more objects within the target image. The image deformation engine and the contour transformation engine may comprise software instructions stored in one or more memory devices and executable by one or more processors.

FIELD

The technology described in this patent document relates generally to the field of contouring medical images.

BACKGROUND AND SUMMARY

Contouring is the process of identifying an object within an image by outlining or otherwise distinguishing the object from the rest of the image. Medical images, such CT (computed tomography), MR (magnetic resonance), US (ultrasound), or PET (positron emission tomography) scans, are regularly contoured to identify certain pieces of anatomy within the image. For example, a radiologist or oncologist may contour a medical image to identify a tumor within the image. Software tools are available to assist in this type of “manual” contouring, in which the physician uses the software to create the contour by tracing the boundary of the object or objects within the image.

Three-dimensional scans, such as CT and PET scans, produce a series of two-dimensional (2D) image slices that together make up the 3D image. Contouring these types of 3D images typically requires individually contouring each of the 2D images slices, which can be a laborious process. There is therefore a need for improved automation techniques for contouring 2D images slices to generate a 3D contour.

In accordance with the teachings described herein, systems and methods are provided for contouring a set of medical images. An example system may include an image database, an image deformation engine and a contour transformation engine. The image database may be used to store a set of medical images. The image deformation engine may be configured to receive a source image and a target image from the set of medical images in the image database, and further configured to use a deformation algorithm with the source image and the target image to generate deformation field data that is indicative of changes between one or more objects from the source image to the target image. The contour transformation engine may be configured to receive source contour data that identifies the one or more objects within the source image, and further configured to use the deformation field data and the source contour data to automatically generate target contour data that identifies the one or more objects within the target image. The image deformation engine and the contour transformation engine may comprise software instructions stored in one or more memory devices and executable by one or more processors.

An example method of contouring a set of medical images may include the following steps: receiving a source image from the set of medical images and source contour data associated with the source image, the source contour data identifying one or more objects within the source image; receiving instructions identifying a target image in the set of medical images to contour; using a deformation algorithm to generate deformation field data from the source image and the target image, the deformation field data indicative of changes between the one or more objects from the source image to the target image; and using the deformation field data and the source contour data to generate automatic target contour data, the automatic target contour data identifying the one or more objects within the target image.

An example method for optimizing one or more parameters in a deformation algorithm may include determining a contour accuracy metric that estimates a percentage of a target contour that is likely to be manually edited. The percentage may be calculated using statistical data generated from a training set of contours. The statistical data may include a probability density function that is generated as a function of the training set of contours. The statistical data may further include a histogram of distances between a candidate contour and a reference contour in the training set of contours. The contour accuracy metric may be generated by taking a dot product of the probability density function with the histogram.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1, 3 and 5 depict block diagrams of example systems for contouring a set of medical images.

FIGS. 2, 4, 6 and 7 depict a flow diagrams of example methods for contouring a set of medical images.

FIGS. 8-12 illustrate examples of contours that may be generated by the systems and method described herein.

FIGS. 13-15 illustrate an example process for optimizing a deformation algorithm for a particular scenario.

FIG. 16 is a block diagram of hardware which may be used to implement the various embodiments described herein.

DETAILED DESCRIPTION

FIG. 1 depicts a block diagram of an example system 100 for contouring a set of medical images. The system 100 includes an image deformation engine 102, a contour transformation engine 104 and an image rendering engine 106. Also included in the example system 100 are an image database 108 for storing a set of two-dimensional image slices, a contour database 110 for storing contour data and a display 112. It should be understood that the image deformation engine, contour transformation engine and image rendering engine, as described herein, may be implemented by software instructions executing on one or more processing devices. In other implementations, however, one or more operations of these software engines may instead be performed by other known mechanisms such as firmware or even appropriately designed hardware. The image database and contour database, as described herein, may be implemented using one or more memory devices. For instance, in one example the image database and contour database may be implemented within the same memory device, and in another example they may be implanted on separate memory devices.

The plurality of medical images are loaded into the image database 108 for contouring. The plurality of medical images may include a set of two-dimensional (2D) slices that are received, for example, from a CT scanner or other system for capturing three-dimensional (3D) medical images, such that the set of 2D slices together represent a 3D medical image. In other examples, the plurality of medical images slices could be virtual, such as sagittal or coronal images (or any other slicing angle through the image data).

In operation, the system 100 receives contour data 114 for a source image in the image database 108 and automatically propagates the source contour data 114 onto a target image. Specifically, the image deformation engine 102 receives the source image and the target image from the image database 108 and applies a deformation algorithm to the source and target images to generate deformation field data 116 that indicates how one or more objects within the image have changed from the source to the target. The contour transformation engine 104 then applies the deformation field data 116 to the source contour data 114 to create target contour data 118. The target contour data 118 is then stored in the contour database 110 and may be overlaid onto the target image by the image rendering engine 106.

The image deformation engine 102 may, for example, utilize a free-form intensity-based deformable registration algorithm that maps similar tissues from the source image to the target image by matching intensity values from one image to the next. More specifically, a free-form intensity-based deformable registration algorithm is a type of deformation algorithm that generates deformation field data in the form of an x-y mapping for each pixel in the target image. For each pixel in the target image, the x-y mapping identifies the pixel in the source image that most likely corresponds to similar anatomy in the target image based on the pixel intensities. In this way, pixel positions along the edge of an object (e.g., a piece of anatomy) in the source image may be mapped to corresponding pixel positions along the edge of the same object in the target image, showing how the object (e.g., anatomy) has changed from the source image to the target image.

Free-form intensity-based deformable registrations can have configurable parameters which may be optimized to a particular registration task. These parameters include maximum number of iterations, resolution of the deformation field, smoothing of the image data, and regularization to control the smoothness of the deformation field. These parameters may, for example, be selected by the programmer or empirically optimized using training data and an optimizer, such as Amoeba, a steepest-descent algorithm, or a population-based optimizer like genetic algorithms or particle swarm optimization.

The contour transformation engine 104 takes the deformation field data 116 and applies it to the source contour data 114 in order to warp the contour data to match the changes from the source image to the target image. In this way, all of the source contour data 114, possibly including contours of multiple objects within the source image, may be transformed at the same time to generate corresponding contours 118 for the target image. In one example, the source and target contour data 114, 118 may be in the form of a binary mask that identifies pixels within a contour as a binary “1” and identifies pixels outside of a contour as a binary “0.” In this example, the target contour data 118 may be generated by interpolating the source contour image (binary mask) at positions defined by the deformation field to create the target contour. In another example, multiple contours within an image could be represented by a single byte mask. Other types of contour data could also be used.

In one example, the system 100 illustrated in FIG. 1 could be used as a semi-automatic contouring tool that receives initial contour data 114 for one of the image slices in the set of images 108 and then automatically contours the remaining images slices in the set 108. In this example, the contour transformation engine 104 may receive contour data 114 for the initial source image from an external source. For instance, the initial contour data 114 may be provided by manually contouring one of the image slices 108 using one of a variety of know manual contouring software applications. In another example, the initial contour data 114 may be provided from a different set of related images, such as from a different (e.g., earlier) CT scan of the same patient. The target contour 118 for the first target slice may then be generated by applying the deformation field 116 to the provided initial source contour 114. For the remaining images in the set 108, the stored target contour data 110 may be recursively fed back as the source contour data 114 for the next image slice, as illustrated by the dotted line 124 in FIG. 1.

As shown in FIG. 1, the system 100 may also receive information identifying the current source and target slices 120, 122 on which to perform the deformation and contouring operations. This allows the user to define the order in which the image slices 108 are contoured. In operation, when a source image is identified 120, the system may determine if a corresponding source contour 114 is already stored in the contour database 110. If so, then the stored contour may be used as the source contour 114 for the identified target image 122. In other examples, source contours 114 could be input for multiple image slices in the set 108, and the user may use the source and target identifications 120, 122 to dictate which source contour is applied to which target image.

In one example, the source and target identification information 120, 122 may be supplied in the form of simple up or down commands to instruct the system 100 to move on to the next slice. In other examples, however, the target slice does not necessarily have to be the next consecutive slice after the source image. For instance, in one example, if the user identifies a target slice 122 that is not consecutive with the identified source slice 120, the contour transformation engine 104 may apply an interpolation algorithm to the source and target contour data 114, 118 to generate contour data for one or more skipped intermediary slices. In another example, the contour transformation engine 104 may generate contour data directly from a source contour to a nonadjacent target contour. In addition, the identifying information 120, 122 may enable the user to more precisely control the contouring process. For example, the user could start with a contoured source slice in the middle of the set of images 108, perform automatic contours in a first direction, and then return to the initial contoured source image and perform automatic contours in the other direction (see, e.g., FIGS. 8-12.)

FIG. 2 is a flow diagram depicting an example method of contouring a set of medical images. In step 202, an initial source image is received along with associated source contour data. The initial source image may, for example, be received from a stored set of 2D medical image slices, such as image slices from a CT scan. In other examples, the initial source image may be received from a different set of images that is related to the images to be contoured. For example, the initial source image may be from a previous CT scan of the same anatomy in the same patient or possibly from a different patient. The initial source contour data received in step 202 may, for example, be generated by manually contouring the initial source image using a manual contouring software application or automatically generated by a known auto-contouring software application. In other examples, the initial source contouring data could instead be provided from a different set of related images, such as a prior CT scan.

In step 204, a target image is identified for contouring based on the source image and source contour. The target image may, for example, be identified by a user via a graphical user interface that allows the user to select the target image from a set of image slices. In step 206, a deformation algorithm, such as an intensity-based deformable registration algorithm, is applied to the source and target images to generate deformation field data that indicates how one or more objects within the images have changed from the source image to the target image. The deformation field data is then applied to the source contour data in step 208 to automatically create contour data for the target image by transforming the source contour to match the changes from the source image to the target image.

At decision step 210, the method determines whether there are additional image slices in the set to contour. This decision may, for example, be based on input from a user or may be automatically determined by comparing the generated contour data with the set of stored image slices. If the contouring is complete, then the method proceeds to step 212 at which point a set of contoured images has been generated. Otherwise, if the contouring is not completed, then the method returns to step 204 where the next target contour is identified. When the method returns to step 204, the previous target image and contour data may be used as the source image and source contour data for automatically contouring the next identified target image. Alternatively, if the next identified target image is not consecutive with the previously contoured target image, then the source image and contour data may be selected from a database of stored images and contours or may otherwise be provided or selected by the user. In other embodiments, a non-consecutive slice may be contoured by direct deformation from the previously contoured target image or by computing and concatenating deformations pairwise through a chain of consecutive slices.

It should be understood that similar to the other processing flows described herein, one or more of the steps and the order in the flowchart may be altered, deleted, modified and/or augmented and still achieve the desired outcome.

FIG. 3 depicts a block diagram of another example system 300 for contouring a set of medical images. In this example, manual contouring software 302 is included within the system 300 for manually contouring one or more source images 304 or for manually modifying the target contour data generated by the contour transformation engine 306.

In operation, a set of medical images, such as 2D image slices from a CT scan, are loaded into an image database 308 for contouring. Identified source and target images from the image database 308 are received by the image deformation engine 310, which applies a deformation algorithm to the images to generate deformation field data, as described above. The deformation field data is supplied to the contour transformation engine 306, which applies the deformation field data to a source contour 312, as described above, to automatically generate target contour data 314.

The source contour data 312 may be received from a set of previously generated contour data stored in the contour database 316. For instance, an initial source image may be manually contoured using the manual contouring software 302 and stored in the contour database 316 for use as the source contour data 312 for the initial target image. The automatically generated target contour data 314 may then be stored in the contour database 316, and may be used as the source contour 312 for a subsequent target image. In this way, a full set of images may be automatically contoured from one manually-contoured initial source image. In other examples, however, the source contour data 312 may be manually generated for more than one source image. For example, an uncontoured image 304 may be selected 318 as the source image at any point during the contouring process. When an uncontoured source image 304 is selected, the manual contouring software 302 may be used to create a contour that is stored as part of the contour set in the contour database 316 and is fed back as the source contour 312 for the identified target image 320.

In addition, the manual contouring software 302 may also be used to manually edit one or more of the automatically generated target contours 314. For instance, if the user is not satisfied with the automatically generated target contour 314, then the contour may be manually modified using the manual contouring software 302, and the manually-edited target contour data may then be stored as part of the contour set in the contour database 316.

Also illustrated in FIG. 3 is an image rending engine 322 and a display device 324. The image rendering engine 322 may be used to overlay contour data from the contour database 316 onto image data from the image database 308 for viewing on the display device 324. For instance, the image rendering engine 322 may display one or both of the selected source and target images 318, 320 on the display device, along with an overlay of the source contour data 302 on the displayed source image. Then, once the target contour 314 is generated, it may be displayed as an overlay on the target image for the user to review and possibly edit.

FIG. 4 is a flow diagram of another example method 400 for contouring a set of medical images. In step 402, the method is initialized with an initial source image along with associated source contour data. Then, in step 404, a target image is identified for contouring based on the source image and source contour. In step 406, a deformation algorithm is applied to the source and target images to generate deformation field data that indicates how one or more objects within the images have changed from the source image to the target image. The deformation field data is then applied to the source contour data in step 408 to automatically generate contour data for the target image by transforming the source contour to match the changes from the source image to the target image.

At decision step 410, a user input is received to either accept or modify the automatically generated target contour. If the automatically generated contour is accepted, then the method proceeds to step 412. Otherwise, if the user chooses to modify the automatically generated target contour, then the contour is manually edited at step 414 before the method proceeds to step 412. The dotted line between steps 414 and 404 signifies that if a target contour is manually edited, then during the next iteration of the contouring method (if any), the manually edited contour may be used as the source contour for the next target image.

At decision step 412, the method determines whether there are additional image slices in the set to contour. This decision may, for example, be based on input from a user or may be automatically determined by comparing the generated contour data with the set of stored image slices. If the contouring is complete, then the method proceeds to step 416 at which point a set of contoured images has been generated. Otherwise, if the contouring is not completed, then the method returns to step 404 where the next target contour is identified. When the method returns to step 404, the previous target image and contour data (automatic or manually-edited) may be used as the source image and source contour data for automatically contouring the next identified target image. Alternatively, if the next identified target image is not consecutive with the previously contoured target image, then the source image and contour data may be selected from a database of stored images and contours or may otherwise be provided or selected by the user. In other embodiments, a non-consecutive slice may be contoured by direct deformation from the previously contoured target image or by computing and concatenating deformations pairwise through a chain of consecutive slices.

FIG. 5 is a system diagram 500 of another example system for contouring a set of medical images. This system 500 is similar to the example described above with reference to FIG. 3, except that it also includes a deformation fields database 502 for storing one or more deformation fields generated by the image deformation engine 504. In addition, in this example the image deformation engine 504 is further configured to predict the next target image that will be selected 506 for contouring. In operation, the system 500 applies a deformation algorithm to a source and target image to generate deformation field data, and then applies the deformation field data to a source contour to automatically generate a target contour, as described above with reference to FIG. 3. In addition, the image deformation engine 504 predicts the next target image that will be selected, and proceeds to generate a predicted deformation field for that next target slice, which is stored in the deformation fields database 502. Then, if the predicted target image is selected as the next target image for contouring, the already-generated deformation field may be used to transform the source contour and generate the target contour data. In this way, parallel processing capabilities of the system 500 are utilized to significantly reduce processing time.

In one example, predicted deformation field data may remain in the deformation fields database 502 until it is utilized or until the entire set of images is contoured. In this way, if the image deformation engine 504 makes a wrong prediction, then the generated deformation field data may still be available in the database 502 for later use. For instance, before generating new deformation field data, the image deformation engine 504 may first determine if deformation field data for an identified source and target image is already stored in the deformation fields database 502.

In another example, some or all of the deformation field data may be generated and stored in the deformation fields database 502 ahead of time to further reduce processing time. This solution may, for example, be advantageous when the system 500 does not have significant memory constraints.

In yet another example, the deformation field data stored in the database 502 may be used to transform contours in reverse through a deformation. For example, if a deformation field exists in the database 502 mapping image slice “A” to image slice “B”, that deformation field could also be used to generate a contour for slice “A” from an existing contour of slice “B”.

FIG. 6 is a flow diagram of another example method 600 of contouring a set of medical images. In step 602, the method is initialized with an initial source image along with associated source contour data. Then, in step 604, a target image is identified for contouring based on the source image and source contour. In decision step 606, the method determines if deformation field data has already been generated for the identified source and target images. If so, then the already-generated deformation field is retrieved and the method proceeds to step 608. Otherwise, if the deformation field data has not already been generated, a deformation algorithm is applied to the source and target images at step 610 to generate the deformation field data.

At step 608, the deformation field data is applied to the source contour data to automatically generate contour data for the target image by transforming the source contour to match the changes from the source image to the target image. The user may then manually edit the target contour data at step 611, if desired. Step 611 is illustrated with a dotted box to indicate that the user may choose to skip this step and leave the automatically generated target contour unedited. In addition, the dotted line between steps 611 and 608 signifies that if a target contour is manually edited, then during the next iteration of the contouring method (if any), the manually edited contour may be used as the source contour for the next target image.

In addition, after step 608 the method performs the parallel process of predicting the next target image at step 612. Then, in step 614, a deformation algorithm is applied to the current target image and the predicted target image to generate and store predicted deformation field data. The dotted line between steps 614 and 604 signifies that the stored predicted deformation field data from step 614 may then be used to transform a source contour in a subsequent iteration of the method.

At decision step 616, the method determines whether there are additional image slices in the set to contour. This decision may, for example, be based on input from a user or may be automatically determined by comparing the generated contour data with the set of stored image slices. If the contouring is complete, then the method proceeds to step 620 at which point a set of contoured images has been generated. Otherwise, if the contouring is not completed, then the method returns to step 604 where the next target contour is identified. When the method returns to step 604, the previous target image and contour data (automatic or manually-edited) may be used as the source image and source contour data for automatically contouring the next identified target image. Alternatively, if the next identified target image is not consecutive with the previously contoured target image, then the source image and contour data may be selected from a database of stored images and contours or may otherwise be provided or selected by the user.

FIG. 7 is a flow diagram of an example method 700 of contouring a set of medical images using a set of pre-computed deformation fields. In step 702, a deformation field is calculated and stored for each two consecutive slices in the set of medical images. Then, at step 704, the method is initialized with an initial source image and associated source contour data. In step 706, a target image is identified for contouring based on the source image and source contour.

In step 708, the method determines whether the source and target images are adjacent slices in the set of medical images. If they are, then the method proceeds to step 710 to use the pre-computed deformation field for the two slices to transform the source contour data to generate the target contour. Otherwise, if a nonconsecutive slice is identified as the target image in step 706, then the method proceeds from decision step 708 to step 712. In step 712, the deformation field for the identified source and target images is determined by concatenating all of the pre-calculated deformation fields between the source image and the target image. Then, at step 714, this concatenated deformation field is used to transform the source contour data to generate the target contour.

In step 718, the user may manually edit the target contour data, if desired. Step 718 is illustrated with a dotted box to indicate that the user may choose to skip this step and leave the automatically generated target contour unedited. At decision step 718, the method determines whether there are additional image slices in the set to contour. This decision may, for example, be based on input from a user or may be automatically determined by comparing the generated contour data with the set of stored image slices. If the contouring is complete, then the method proceeds to step 720 at which point a set of contoured images has been generated. Otherwise, if the contouring is not completed, then the method returns to step 704 where the next target contour is identified.

FIGS. 8-12 illustrate examples of contour data that may be generated by the systems and method described herein. Specifically, FIGS. 8-12 are illustrations of contoured image slices from a CT scan of a patient's pelvic region. FIG. 8 illustrates an example of a source image that has been manually contoured to include contours 800 that identify portions of the patient's left and right femur, bladder, rectum and seminal vesicles. FIG. 9 illustrates a target image that has been automatically contoured from the source image and contour data of FIG. 8 using the systems and methods described herein. A comparison of FIGS. 8 and 9 shows that changes in the patient's anatomy from the image slice shown in FIG. 8 to the image slice shown in FIG. 9 are reflected in target contours 900 shown in FIG. 9.

FIG. 10 illustrates a next consecutive image slice in the set of images. The contours 1000 illustrated in FIG. 10 were automatically generated by the systems and methods described herein, using the image and automatically generated contour data from FIG. 9 as the source image and contour.

FIG. 11 illustrates an image slice that is adjacent to the image slice of FIG. 8, but in the opposite direction. That is, FIGS. 9 and 11 are both adjacent to the slice shown in FIG. 8. The contours 1100 illustrated in FIG. 11 were automatically generated using the systems and methods described herein by identifying the image and contour of FIG. 8 as the source image and contour.

FIG. 12 illustrates an image slice from the set of images that is closest to the image shown in FIG. 11, but that is not adjacent to any of the image slices shown in FIG. 8-11. The contours 1200 shown in FIG. 12 may, for example, be generated using the systems and method described herein by selecting one of the other contoured images from FIGS. 8-11 as the source image and contour, even though the images are not adjacent.

Deformable registration algorithms, such as the deformation algorithm utilized by the systems and methods described above, may include parameters that can be configured to optimize the registration for particular tasks. One such task is transforming contours from a source image to a target image. These images could be individual slices or 3D medical images (e.g., for atlas-based segmentation). A more specific optimization allows the system to be configured for a specific physician, institution, treatment site, image modality, camera or any combination thereof by accepting a set of manually defined contours and medical images as a training set and a contour accuracy metric for scoring the automatically or semi-automatically generated contour results. These may then be used as inputs to an optimization program to locate at least a local minimum (or maximum, depending on the metric) for the configurable parameters of the deformable registration algorithm.

The contour accuracy metric could be any number of known metrics for contour accuracy, such as mean distance of contour surfaces, or Dice's Similarity Coefficient. Or it could be based on an estimate of the percentage of the contour which the user is likely to edit. This metric may, for example, be computed by taking the dot product of a probability density function and a histogram of distances between the automatically generated contour and a reference contour, as illustrated in FIGS. 13-15.

As shown in FIGS. 13A and 13B, the training set of contours may include a plurality of contours for the same image. For example, the plurality of contours in the training set may include a set of automatically generated contours, as illustrated by contour 1212 in FIG. 13A and contour 1222 in FIG. 13B. The training set may also include manual edits to an automatically generated contour set, as illustrated by the dotted contour segment 1220 in FIG. 13B. In addition, the training set may include a reference contour, such as a single manually defined contour, as illustrated by the dotted contour 1210 in FIG. 13A, or a consensus contour created from a multiplicity of contour sets.

Distances may be computed between points sampled along the automatically generated contours 1212, 1222 and the corresponding points on the manually edited contour 1220 to determine whether the point was manually edited or left unedited. In the examples shown in FIGS. 13A and 13B, distance measurements are illustrated by the arrows 1214, 1224 and 1226. Distance measurements greater than zero signify that the automatically generated contour segment was edited, as illustrated by arrow 1324. Distance measurements of zero signify that the automatically generated contour segment was left unedited, as illustrated by arrow 1226. In addition, the distances of each point on the automatically generated contour 1212, 1222 and the corresponding point on the reference contour 1210 can be calculated, as illustrated by arrow 1214. The combination of these distances may provide a probability density function of the likelihood that a point on the contour will be edited based on the distance of that point from the reference contour. In addition, the probability density function may be weighted based on the distance that the user moved the point during manual editing in order to penalize points far away from the reference contour. An example probability density function is illustrated in FIG. 14.

During the optimization process, contours may be automatically generated in accordance with the given configuration of the deformable registration parameters. Distances can be computed between points sampled along the automatically generated contour and the corresponding points on the reference contour. These distances can be summarized in the form of a histogram, as illustrated in FIG. 15, where each bin in the histogram corresponds to the percentage of total points on the surface of the automatically generated contour which is at a given distance from the reference contour. Computing the dot product of this histogram with the probability density function (FIG. 14) gives a single metric corresponding to the estimate of the percentage of points on the contour surface which the user is likely to edit.

As an example, the training set could consist of contours from a single physician at a single institution for treating a small number of patients. Using the computed probability density functions and distance histograms computed with each configuration, contour accuracy metrics may be calculated and fed into an optimizer to derive a local minimum for the configurable parameters.

FIG. 16 is a block diagram of hardware 1310 which may be used to implement the various embodiments described herein. The hardware 1310 may be a personal computer system or server system that includes a computer having as input devices keyboard 1314, mouse 1316, and microphone 1318. Output devices such as a monitor 1320 and speakers 1322 may also be provided. The reader will recognize that other types of input and output devices may be provided and that the present invention is not limited by the particular hardware configuration.

Residing within computer 1320 is a main processor 1324 which is comprised of a host central processing unit 1326 (CPU). Software applications 1327 may be loaded from, for example, disk 1328 (or other device), into main memory 1329 from which the software application 1327 may be run on the host CPU 1326. The main processor 1324 operates in conjunction with a memory subsystem 1330. The memory subsystem 1330 is comprised of the main memory 1329, which may be comprised of a number of memory components, and a memory and bus controller 1332 which operates to control access to the main memory 1329. The main memory 1329 and controller 1332 may be in communication with a graphics system 1334 through a bus 1336. Other buses may exist, such as a PCI bus 1337, which interfaces to I/O devices or storage devices, such as disk 1328 or a CDROM, or to provide network access.

This written description uses examples to disclose the invention, including the best mode, and also to enable a person skilled in the art to make and use the invention. The patentable scope of the invention may include other examples that occur to those skilled in the art.

For instance, in one alternative embodiment an atlas-based segmentation tool may be integrated with the systems and methods described above, where the atlas-based segmentation tool deformably maps images and contours to an image set in question. The atlas may also include information relating to a relationship of a particular piece of anatomy from one slice to the next. This information, along with a mapping of the atlas anatomy to the patient anatomy, may be integrated into the deformation algorithm in order to bias the deformation towards the atlas-indicated formation. For instance, if the slice-to-slice deformation in the atlas-patient shrinks the contour at the bottom of a structure, constraints to the deformation may indicate that the contour at the bottom of the same structure in the current patient should also be shrunk by the slice-to-slice deformation.

In another alternative embodiment, a more intelligent contour interpolation scheme may be used. For instance, if two non-contiguous image slices each have a contour, deformations from the contoured slices (which could be direct deformations or concatenations of a series of deformations) to the target slice may produce two candidate contours. These two candidate contours may then be averaged to define an interpolated contour which benefits from the slice-to-slice deformation described herein.

It is further noted that the systems and methods described herein may be implemented on various types of computer architectures, such as for example on a single general purpose computer or workstation, or on a networked system, or in a client-server configuration, or in an application service provider configuration.

Additionally, the methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing subsystem. The software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform methods described herein. Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and systems described herein.

The systems' and methods' data (e.g., associations, mappings, etc.) may be stored and implemented in one or more different types of computer-implemented ways, such as different types of storage devices and programming constructs (e.g., data stores, RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.). It is noted that data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.

The systems and methods may be provided on many different types of computer-readable media including computer storage mechanisms (e.g., CD-ROM, diskette, RAM, flash memory, computer's hard drive, etc.) that contain instructions for use in execution by a processor to perform the methods' operations and implement the systems described herein.

The computer components, software modules, functions, data stores and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. It is also noted that a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The software components and/or functionality may be located on a single computer or distributed across multiple computers depending upon the situation at hand. 

It is claimed:
 1. A method of contouring a set of medical images, comprising: receiving a source image from the set of medical images and source contour data associated with the source image, the source contour data identifying one or more objects within the source image; identifying a target image in the set of medical images to contour; generating, by a processor, deformation field data from the source image and the target image in accordance with a deformation algorithm, the deformation field data indicative of changes between the one or more objects from the source image to the target image; and generating, by the processor, automatic target contour data based on the deformation field data and the source contour data, the automatic target contour data identifying the one or more objects within the target image, wherein the deformation algorithm includes one or more parameters that are optimized for use with medical images received from a particular user or a particular group of users, and wherein the one or more parameters are optimized based at least in part on a contour accuracy metric that estimates a percentage of the automatic target contour data that the particular user or group of users is likely to manually edit.
 2. The method of claim 1, further comprising: receiving instructions from a graphical user interface to alter the automatic target contour data to create manual target contour data.
 3. The method of claim 2, further comprising: predicting an image from the set of medical images that will likely be contoured next; using the deformation algorithm to generate predicted deformation field data from the target image and the predicted next image, the predicted deformation field data identifying changes in the one or more objects from the target image to the predicted next image; receiving instructions identifying a next target image in the set of medical images to contour; if the next target image is the same as the predicted next image, then applying the predicted deformation field data to the manual contour data to generate contour data associated with the next target image that outlines the one or more objects within the next target image.
 4. The method of claim 2, further comprising: recursively generating contour data for images in the set of medical images by: identifying a next target image in the set of medical images to contour; generating new deformation field data from the target image and the next target image, the new deformation field data identifying changes in the one or more objects from the target image to the next target image; and applying the deformation field data to the manual target contour data to generate contour data associated with the next target image that identifies the one or more objects within the next target image.
 5. The method of claim 1, further comprising: recursively generating contour data for images in the set of medical images by: identifying a next target image in the set of medical images to contour; generating new deformation field data from the target image and the next target image, the new deformation field data identifying changes in the one or more objects from the target image to the next target image; and applying the deformation field data to the automatic target contour data to generate contour data associated with the next target image that identifies the one or more objects within the next target image.
 6. The method of claim 1, further comprising: predicting an image from the set of medical images that will likely be contoured next; using the deformation algorithm to generate predicted deformation field data from the target image and the predicted next image, the predicted deformation field data identifying changes in the one or more objects from the target image to the predicted next image; receiving instructions identifying a next target image in the set of medical images to contour; if the next target image is the same as the predicted next image, then applying the predicted deformation field data to the automatic contour data to generate contour data associated with the next target image that outlines the one or more objects within the next target image.
 7. The method of claim 1, wherein the source image and the target image are adjacent image slices in the set of medical images.
 8. The method of claim 1, wherein the source image and the target image are non-adjacent image slices in the set of medical images.
 9. The method of claim 8, wherein generating the deformation field data from the source image and the target image comprises directly applying the deformation algorithm to the source image and target image.
 10. The method of claim 1, wherein the deformation algorithm is an intensity-based deformation algorithm.
 11. The method of claim 10, wherein the deformation field data indicates changes between the one or more objects from the source image to the target image by identifying correspondences between pixels in the source image and pixels in the target image based on pixel intensity.
 12. The method of claim 1, wherein the deformation algorithm is a free-form deformation algorithm.
 13. The method claim 1, wherein the automatic target contour data is generated by interpolating the source contour data at pixel positions identified in the deformation field data as corresponding to locations of the one or more objects within the target image.
 14. The method of claim 1, wherein the source contour data and the automatic target contour data comprise binary mask data that respectively define whether pixels in the source image and target image are inside or outside of the one or more objects.
 15. The method of claim 1, wherein the source contour data and the automatic target contour data comprise byte mask data that respectively define whether pixels in the source image and the target image are inside or outside of the one or more objects.
 16. The method of claim 1, wherein the source contour data is generated using manual contouring software.
 17. The method of claim 1, wherein the deformation algorithm includes one or more parameters that are optimized for use with medical images received from a particular type of imaging system.
 18. The method of claim 1, wherein the percentage is calculated using statistical data generated from a training set of contours received from the particular user of group of users.
 19. The method of claim 18, wherein the statistical data includes a probability density function that is generated as a function of the training set of contours.
 20. The method of claim 19, wherein the statistical data further includes a histogram of distances between a candidate contour and a reference contour in the training set of contours.
 21. The method of claim 20, wherein the contour accuracy metric is generated by taking a dot product of the probability density function with the histogram.
 22. The method of claim 1, further comprising: receiving additional deformation information regarding the source image and the target image that is generated using atlas-based segmentation software; and using the additional deformation information to apply one or more constraints on the deformation field data generated using the deformation algorithm.
 23. The method of claim 1, further comprising: receiving a second source image from the set of medical images and second source contour data associated with the second source image; using the deformation algorithm to generate second deformation field data from the second source image and the target image; using the second deformation field data and the second source contour data to generate second automatic target contour data; and averaging the automatic target contour data and the second automatic target contour data to generate an interpolated target contour for the target image.
 24. The method of claim 1, wherein the set of medical images comprises a plurality of two-dimensional slices of a three-dimensional medical image such that the source image and the target image are disparate slices of the three-dimensional medical image.
 25. A system for contouring a set of medical images, comprising: at least one processor; and non-transitory, computer-readable storage media having stored thereon an image database for storing a set of medical images and instructions executable by the at least one processor, the instructions comprising: an image deformation engine configured to receive a source image and a target image from the set of medical images in the image database, and further configured to use a deformation algorithm with the source image and the target image to generate deformation field data that is indicative of changes between one or more objects from the source image to the target image; and a contour transformation engine configured to receive source contour data that identifies the one or more objects within the source image, and further configured to use the deformation field data and the source contour data to generate automatic target contour data that identifies the one or more objects within the target image, wherein the deformation algorithm includes one or more parameters that are optimized for use with medical images received from a particular user or a particular group of users, and wherein the one or more parameters are optimized based at least in part on a contour accuracy metric that estimates a percentage of the automatic target contour data that the particular user or group of users is likely to manually edit.
 26. The system of claim 25, further comprising: a contour database for storing contour data corresponding to the set of medical images; wherein the contour transformation engine is configured to store the automatic target contour data in the contour database.
 27. The system of claim 25, wherein the image deformation engine is further configured to receive instructions identifying the source image and the target image from the set of medical images.
 28. The system of claim 25, further comprising: manual contouring software configured to receive user input to alter the automatic target contour data to create manual target contour data.
 29. The system of claim 28, wherein: the image deformation engine is further configured to receive instructions identifying a next target image in the set of medical images to contour, and to use the deformation algorithm to generate new deformation field data from the target image and the next target image, the new deformation field data identifying changes in the one or more objects from the target image to the next target image; and the contour transformation engine is further configured to apply the deformation field data to the manual target contour data to generate contour data associated with the next target image that identifies the one or more objects within the next target image.
 30. The system of claim 25, wherein: the image deformation engine is further configured to predict an image from the set of medical images that will likely be contoured next, and to use the deformation algorithm to generate predicted deformation field data from the target image and the predicted next image, the predicted deformation field data identifying changes in the one or more objects from the target image to the predicted next image; and the image deformation engine is further configured to receive instructions identifying a next target image in the set of medical images to contour, and, if the next target image is the same as the predicted next image, then apply the predicted deformation field data to the automatic contour data to generate contour data associated with the next target image that identifies the one or more objects within the next target image.
 31. The system of claim 28, wherein: the image deformation engine is further configured to predict an image from the set of medical images that will likely be contoured next, and to use the deformation algorithm to generate predicted deformation field data from the target image and the predicted next image, the predicted deformation field data identifying changes in the one or more objects from the target image to the predicted next image; and the image deformation engine is further configured to receive instructions identifying a next target image in the set of medical images to contour, and, if the next target image is the same as the predicted next image, then apply the predicted deformation field data to the manual contour data to generate contour data associated with the next target image that identifies the one or more objects within the next target image.
 32. The system of claim 25, wherein the source image and the target image are adjacent image slices in the set of medical images.
 33. The system of claim 25, wherein the source image and the target image are non-adjacent image slices in the set of medical images.
 34. The system of claim 25, wherein the deformation algorithm is an intensity-based deformation algorithm.
 35. The system of claim 34, wherein the deformation field data indicates changes between the one or more objects from the source image to the target image by identifying correspondences between pixels in the source image and pixels in the target image based on pixel intensity.
 36. The system of claim 25, wherein the deformation algorithm is a free-form deformation algorithm.
 37. The system of claim 25, wherein the automatic target contour data is generated by interpolating the source contour data at pixel positions identified in the deformation field data as corresponding to locations of the one or more objects within the target image.
 38. The system of claim 25, wherein the source contour data and the automatic target contour data comprise binary mask data that respectively define whether pixels in the source image and target image are inside or outside of the one or more objects.
 39. The system of claim 25, wherein the source contour data and the automatic target contour data comprise byte mask data that respectively define whether pixels in the source image and the target image are inside or outside of the one or more objects.
 40. The system of claim 25, wherein the source contour data is generated using manual contouring software.
 41. The system of claim 25, wherein the set of medical images comprises a plurality of two-dimensional slices of a three-dimensional medical image such that the source image and the target image are disparate slices of the three-dimensional medical image.
 42. A method of contouring a set of medical images, comprising: receiving a source image from the set of medical images and source contour data associated with the source image, the source contour data identifying one or more obiects within the source image; identifying a target image in the set of medical images to contour; generating, by a processor, deformation field data from the source image and the target image in accordance with a deformation algorithm, the deformation field data indicative of changes between the one or more objects from the source image to the target image; and generating, by the processor, automatic target contour data based on the deformation field data and the source contour data, the automatic target contour data identifying the one or more obiects within the target image, wherein the set of medical images comprises a plurality of two-dimensional slices of a three-dimensional medical image such that the source image and the target image are disparate slices of the three-dimensional medical image, the source image and the target image are non-adjacent image slices in the set of medical images, and generating the deformation field data from the source image to the target image comprises: generating first intermediary deformation field data between the source image and an intermediary image; generating second intermediary deformation field data between the intermediary image and the target image; and concatenating the first intermediary deformation field data and the second intermediary deformation field data. 